
package ConexionBD;
import Usuario.Usuario;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;


public class UsuarioBd 
{
    
    public void InsertaUsuario(Connection LaConexion, Usuario Elusuario)
    {
        if(Elusuario == null){
           JOptionPane.showMessageDialog(null,"No se efectua nada en la BD\nError en la variable Elusuario" );
           return;
        }
        
        if(LaConexion == null){
            JOptionPane.showMessageDialog(null,"No se efectua nada en la BD\nError en la variable LaConexion");
           return;
        }

        // Manejo de la conexion
        try{
            Statement EjecutaOrdenSQL = LaConexion.createStatement();
            
            String OrdenSQL = "";
            
            
            OrdenSQL+= "INSERT INTO usuario (idusuario,nombre,apellido,login,clave,ci,ncarro) VALUES(";
            OrdenSQL+= "'"+Elusuario.getidUsuario()+ "',";
            OrdenSQL+= "'"+Elusuario.getNombre()+ "',";
            OrdenSQL+= "'"+Elusuario.getApellido()+ "',";
            OrdenSQL+= "'"+Elusuario.getlogin()+"',";
            OrdenSQL+= "'"+Elusuario.getClave()+ "',";
            OrdenSQL+= "'"+Elusuario.getCI()+ "',";
            OrdenSQL+= "'"+Elusuario.getNcarros()+"')";
            
            
             EjecutaOrdenSQL.executeUpdate(OrdenSQL);
             JOptionPane.showMessageDialog(null, "Usuario Ingresado Correctamente");
            
            
        }catch(SQLException ex){
          JOptionPane.showMessageDialog(null, ex, "Error al cargar datos en la Base de datos", JOptionPane.ERROR_MESSAGE);
        }// Fin del catch
        
        
    }// Fin de Ingresar Clinte
    
    
    
   public void ActualizaUsuario(Connection LaConexion, Usuario Elusuario){

        if(Elusuario == null){
           JOptionPane.showMessageDialog(null,"No se efectua nada en la BD\nError en la variable Usuario");
            return;

        }

        if(LaConexion==null){
            JOptionPane.showMessageDialog(null,"No se efectua nada en la BD\nError en la variable LaConexion");
            return;

        }

        try {
            Statement EjecutaOrdenSQL = LaConexion.createStatement();

            String OrdenSQL = "";

            /*OrdenSQL+= "UPDATE usuario SET ";
            OrdenSQL+= "idusuario= '"+ Elusuario.getidUsuario()+"', ";
            OrdenSQL+= "nombre= '"+ Elusuario.getNombre()+"', ";
            OrdenSQL+= "apellido= '"+ Elusuario.getApellido()+"', ";
             OrdenSQL+= "login= '"+ Elusuario.getlogin()+"', ";
            OrdenSQL+= "clave= '"+ Elusuario.getClave()+"', ";
            OrdenSQL+= "ci= '"+ Elusuario.getCI()+"', ";       
            OrdenSQL+= "ncarro= '"+ Elusuario.getNcarros()+"', ";            
             OrdenSQL+= "WHERE ";
            OrdenSQL+= "ci = '" + Elusuario.getCI()+"'";*/       
  int opcion = JOptionPane.showConfirmDialog(null, "DESEA ACTUALIZAR LOS DATOS?");
  
  if(opcion == 0){
            
  OrdenSQL ="UPDATE usuario SET idusuario = '" + Elusuario.getidUsuario() + "', nombre = '" + Elusuario.getNombre() +
  "', apellido = '" + Elusuario.getApellido() + "', login = '" + Elusuario.getlogin() + "', clave='"
  + Elusuario.getClave() + "',ci ='"+ Elusuario.getCI() +  "',ncarro ='"+ Elusuario.getNcarros()+"' where ci = '" + Elusuario.getCI() + "'";
            
            
  EjecutaOrdenSQL.executeUpdate(OrdenSQL);
  JOptionPane.showMessageDialog(null, "Datos Actualizados....");
  }
  
  else if(opcion == 1){
      
  }
  
  
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, ex, "Error en la Base de datos", JOptionPane.ERROR_MESSAGE);

        }

    }
    
    public void EliminaUsuario(Connection LaConexion, String ci){


        if(LaConexion==null){
            System.out.println("No se efectua nada en la BD\nError en la variable LaConexion");
            return;

        }

        try {
            Statement EjecutaOrdenSQL = LaConexion.createStatement();
            EjecutaOrdenSQL.executeUpdate("DELETE FROM usuario WHERE ci ='"+ ci +"'");
            JOptionPane.showMessageDialog(null,"Usuario Borrado de la Base de Dato...");
            
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, ex, "Error en la Base de datos", JOptionPane.ERROR_MESSAGE);
            
        }

    }
   
     public Usuario ObtieneUsuario(Connection LaConexion, String ci){
        try {
            Statement st2 = LaConexion.createStatement();
            Usuario Elusuario;
            
            try (ResultSet rs2 = st2.executeQuery("SELECT * FROM usuario WHERE ci='" + ci + "'")) {
                rs2.next();

                String Nombres, Apellidos, login, clave;
                int idusuario;
                int ncarros;

                Nombres = rs2.getString("nombre");
                Apellidos = rs2.getString("apellido");
                login = rs2.getString("login");
                clave = rs2.getString("clave");
                ncarros = rs2.getInt("ncarro");
                idusuario = rs2.getInt("idusuario");

                
                Elusuario = new Usuario(Nombres,Apellidos,ci,login,clave,ncarros,idusuario);
           
            }
            return Elusuario;


        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, ex, "Error en la Base de datos", JOptionPane.ERROR_MESSAGE);
        }
        return null;
    }
   
    public boolean BuscausUario(Connection Conexion, String ci){
        try {
            String OrdenSQL = "";
            OrdenSQL += "SELECT ci FROM usuario WHERE ci=" + ci;
            Statement st2 = Conexion.createStatement();
            ResultSet rs2 = st2.executeQuery(OrdenSQL);

            if(rs2.next())
                return true;
            
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, ex, "Error en la Base de datos", JOptionPane.ERROR_MESSAGE);
        }

        return false;


    }
   
   
    
}
